﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace Hotel.ThongKe
{
    public partial class ThongKeKhachHang : Form
    {
        private SqlDataAdapter da;
        private SqlDataReader dr = null;
        SqlCommand cmd = null;    
        String sql1=null;
        String sql2=null;
        String sql3 = null;
        String sql4 = null;
        public String ngaybatdau = null;
        public String ngaytinh = null;
        double ngay_1;
        double ngay_2;
        double thang_1;
        double thang_2;
        double nam_1;
        double nam_2;
        double sokhachdango = 0;
        double sokhachtraphong = 0;
        double sokhachdatphong = 0;
        double sokhachthue_o = 0;

        private SqlConnection conn = new SqlConnection(

           "Server=localhost;DataBase=Hotel;Integrated Security=SSPI");
        private HotelDataSet ds = new HotelDataSet();
      
        public ThongKeKhachHang()
        {
            InitializeComponent();
        }

        private void ThongKeKhachHang_Load(object sender, EventArgs e)
        {

        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }
        
        private void btnThongke_Click(object sender, EventArgs e)
        {
            if (dtpNgaybatdau.Value > DateTime.Now || dtpNgaytinh.Value > DateTime.Now || dtpNgaybatdau.Value > dtpNgaytinh.Value)
                     MessageBox.Show("Chọn ngày thống kê không phù hợp!");
            else
            {

                ngay_1 = Convert.ToDouble(Convert.ToString(dtpNgaybatdau.Value.Date.Day));
                thang_1 = Convert.ToDouble(Convert.ToString(dtpNgaybatdau.Value.Date.Month));
                nam_1 = Convert.ToDouble(Convert.ToString(dtpNgaybatdau.Value.Date.Year));
                ngaybatdau = ngay_1 + "/" + thang_1 + "/" + nam_1;

                ngay_2 = Convert.ToDouble(Convert.ToString(dtpNgaytinh.Value.Date.Day));
                thang_2 = Convert.ToDouble(Convert.ToString(dtpNgaytinh.Value.Date.Month));
                nam_2 = Convert.ToDouble(Convert.ToString(dtpNgaytinh.Value.Date.Year));
                ngaytinh = ngay_2 + "/" + thang_2 + "/" + nam_2;
                sokhachdatphong = 0;

                // Đếm số lượt khách đặt phòng trong khoảng thời gian thống kê
                sql1 = "select STT from PhongLuuTru where(DaXoa='0' and (convert(datetime,NgayDat,103) between convert(datetime,'" + ngaybatdau + "',103) and convert(datetime,'" + ngaytinh + "',103)))";
                sokhachdatphong = Count(sql1);
                tbSokhachdatphong.Text = Convert.ToString(sokhachdatphong);

                // Đếm số khách đang ở trong khoảng thời gian thống kê
                sokhachdango = 0;
                //lượng khách chưa trả phòng
                sql2 = "select STT from PhongLuuTru where (DaXoa='0' and(convert(datetime,NgayTra,103)between convert(datetime,'"+ngaybatdau+"',103) and convert(datetime,'"+ngaytinh+"',103)))";
                sokhachdango = Count(sql2);
                tbSokhachdango.Text = Convert.ToString(sokhachdango);

                sokhachthue_o = 0;
                sql3 = "select STT from PhongLuuTru where(DaXoa='0' and( ((convert(datetime,NgayDat,103) between convert(datetime,'" + ngaybatdau + "',103) and convert(datetime,'" + ngaytinh + "',103))and (convert(datetime,NgayTra,103) between convert(datetime,'"+ngaybatdau+"',103)and convert(datetime,'" + ngaytinh + "',103)))))";
                sokhachthue_o = Count(sql3);
                tbSokhachThue_dangO.Text = Convert.ToString(sokhachthue_o);
                // Đếm sô khách trả phòng trong khoảng thời gian thống kê
                sokhachtraphong = 0;
                sql4 = "select STT from PhongLuuTru where(DaXoa='0' and ( convert(datetime,NgayTra,103) between convert(datetime,'" + ngaybatdau + "',103) and convert(datetime,'" + ngaytinh + "',103)))";

                sokhachtraphong = Count(sql4);
                tbSokhachtraphong.Text = Convert.ToString(sokhachtraphong);
            }
        }
        public int Count(string sql)
        {
            int count = 0;
            try
            {
                conn.Open();
                cmd = new SqlCommand(sql, conn);
                dr = cmd.ExecuteReader();
                while (dr.Read())
                {
                    count++;
                }
            }
            catch
            {

            }
            finally
            {
                if (dr != null)
                {
                    dr.Close();
                }
                if (conn != null)
                {
                    conn.Close();
                }
            }
            return count;
        }

        private void btnXuat_Click(object sender, EventArgs e)
        {
            DanhSachKhachThuePhong danhsachKhachHang = new DanhSachKhachThuePhong(this);
            danhsachKhachHang.ShowDialog();
        }
    }
}
